1
ปัญหาการจัดการหน่วยความจำ
AI034Lesson 4
00:00

ในช่วงหลายทศวรรษที่ผ่านมา การเขียนโปรแกรมระบบต่าง ๆ ถูกกักขังอยู่ในความขัดแย้งแบบสองทาง: ซึ่ง ความขัดแย้งระหว่างการควบคุม. ในภาษาเช่น C/C++ คุณมีการควบคุมอย่างสมบูรณ์ แต่ต้องแบกรับภาระของการจัดการด้วยตนเอง — หากลืมใช้ free() จะนำไปสู่การรั่วไหลที่ร้ายแรง ตรงข้ามกัน ภาษาเช่น Java หรือ Go ให้ความปลอดภัยผ่าน การเก็บขยะ (GC)แต่กลับเสียประสิทธิภาพด้วยการหยุดชะงักแบบไม่แน่นอนที่อาจทำลายระบบการซื้อขายความถี่สูงหรือระบบที่ต้องทำงานแบบเรียลไทม์ได้

ทางเลือกที่สาม: การเป็นเจ้าของ

รัสต์แก้ไขปัญหานี้โดยเปลี่ยนแปลงการจัดการหน่วยความจำจาก เวลาทำงาน ไปยัง ตัวประมวลผลผ่านกฎเกณฑ์ที่เข้มงวดของ กฎการเป็นเจ้าของตัวประมวลผลจะติดตามวงจรชีวิตของทุกไบต์ เมื่อคุณรัน $ cargo runตัวตรวจสอบการยืม (Borrow Checker) จะตรวจสอบว่าหน่วยความจำมีความถูกต้อง ไม่ซ้ำ และปลอดภัย โดยไม่ต้องพึ่งผู้จัดการหลังฉากหรือการปล่อยหน่วยความจำด้วยตนเอง ตัวตรวจสอบการยืม ตรวจสอบว่าหน่วยความจำมีความถูกต้อง ไม่ซ้ำ และปลอดภัย โดยไม่ต้องพึ่งผู้จัดการหลังฉากหรือการปล่อยหน่วยความจำด้วยตนเอง

แบบแมนนวล (C/C++)ความเสี่ยงสูง / การควบคุมสูงGC (Java/Go)ความปลอดภัยสูง / การควบคุมต่ำรัสต์สะพานของตัวประมวลผลcargo run ✓

การยืนยันผ่านเทอร์มินัล

โดยใช้ cargo runความปลอดภัยของหน่วยความจำกลายเป็น การรับรองเวลาคอมไพล์. หากคุณฝ่าฝืนกฎใด ๆ โปรแกรมจะไม่สามารถสร้างได้เลย ซึ่งช่วยป้องกันการล่มก่อนที่จะถึงขั้นการผลิต

main.py
TERMINALbash — 80x24
> Ready. Click "Run" to execute.
>